package chapter18;

import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
import java.util.regex.Pattern;

/**
 * 18.1 目录列表器(匿名内部类版)
 * 
 * @author 黄传伟 2018年6月24日
 *
 */
public class DirList2 {
	public static FilenameFilter filter(final String regex) {
		return new FilenameFilter() {
			private Pattern pattern = Pattern.compile(regex);
			
			@Override
			public boolean accept(File dir, String name) {
				return pattern.matcher(name).matches();
			}
		};
	}
	
	public static void main(String[] args) {
		File path = new File(".");
		String[] list;
		if (args.length == 0) {
			// 获取当前路径下的所有文件/目录列表
			list = path.list();
		} else {
			list = path.list(filter(args[0]));
		}
		// 按忽略大小写的字符自然顺序排序
		Arrays.sort(list, String.CASE_INSENSITIVE_ORDER);
		for (String dirItem :list) {
			System.out.println(dirItem);
		}

	}
}

